package com.jrx.anytxn.transaction.dto.loan;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 贷款账户信息响应res
 *
 * @author yf
 * date 2020/4/10 0010
 * @version V1.0
 **/
public class LoanAccountInfoRes implements Serializable {

    /**
     * 主键
     * 表字段:id
     */
    private Long id;

    /**
     * 租户ID
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 贷款订单id
     * 表字段:loan_id
     */
    private String loanId;

    /**
     * 机构号
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 渠道id
     * 表字段:channel
     */
    private String channel;

    /**
     * 	贷款状态(0-新建 1-正常 2-逾期 7-提前结清 8-正常结清 9-取消)
     * 表字段:account_status
     */
    private String accountStatus;

    /**
     * 产品id
     * 表字段:product_id
     */
    private String productId;

    /**
     * 客户id
     * 表字段:customer_id
     */
    private String customerId;

    /**
     * 余额
     * 表字段:curr_balance
     */
    private BigDecimal currBalance;

    /**
     * 本金余额 所有已抛未还本金
     * 表字段:principal_balance
     */
    private BigDecimal principalBalance;

    /**
     * 利息余额 所有已抛未还利息
     * 表字段:interest_balance
     */
    private BigDecimal interestBalance;

    /**
     * 罚息余额 所有已抛未还罚息
     * 表字段:penalty_balance
     */
    private BigDecimal penaltyBalance;

    /**
     * 复利余额 所有已抛未还复利
     * 表字段:compound_balance
     */
    private BigDecimal compoundBalance;

    /**
     * 服务费余额 	所有已抛未还费用
     * 表字段:fee_balance
     */
    private BigDecimal feeBalance;

    /**
     * 剩余本金 	所有未还本金（包含未抛部分）
     * 表字段:remain_principal
     */
    private BigDecimal remainPrincipal;

    /**
     * 计提利息
     * 表字段:accrued_interest
     */
    private BigDecimal accruedInterest;

    /**
     * 计提罚息
     * 表字段:accrued_penalty
     */
    private BigDecimal accruedPenalty;

    /**
     * 计提复利
     * 表字段:accrued_compound
     */
    private BigDecimal accruedCompound;

    /**
     * 已抛期数
     * 表字段:cast_tenor
     */
    private Integer castTenor;

    /**
     * 已还期数
     * 表字段:payed_tenor
     */
    private Integer payedTenor;

    /**
     * 	核销标志(0-否 1-已核销)
     * 表字段:chargeoff_flag
     */
    private String chargeoffFlag;

    /**
     * 核销金额
     * 表字段:chargeoff_amount
     */
    private BigDecimal chargeoffAmount;

    /**
     * 核销日期
     * 表字段:chargeoff_date
     */
    private Date chargeoffDate;

    /**
     * 核销原因码
     * 表字段:chargeoff_reason_code
     */
    private String chargeoffReasonCode;

    /**
     * 停息标志(0=停息 1=正常计息)
     * 表字段:waive_interest_flag
     */
    private String waiveInterestFlag;

    /**
     * 停费标志(0=停费 1=正常计费)
     * 表字段:waive_fee_flag
     */
    private String waiveFeeFlag;

    /**
     * 代偿标识(0=否 1=是)
     * 表字段:compensatory_flag
     */
    private String compensatoryFlag;

    /**
     * 债权转移标识(0=否 1=是)
     * 表字段:bal_transfer_flag
     */
    private String balTransferFlag;

    /**
     * 总代偿期数
     * 表字段:total_compensatory_tenor
     */
    private Integer totalCompensatoryTenor;

    /**
     * 连续逾期期数
     * 表字段:continue_over_due_tenor
     */
    private Integer continueOverDueTenor;

    /**
     * 总逾期期数号
     * 表字段:total_over_due_tenor
     */
    private Integer totalOverDueTenor;

    /**
     * 会计状态(0=正常 1=逾期 2=呆滞 3=呆账)
     * 表字段:accounting_phase
     */
    private String accountingPhase;

    /**
     * 当前延滞天数
     * 表字段:delq_days
     */
    private Integer delqDays;

    /**
     * 非应记状态(0=应计 1=非应计)
     * 表字段:non_accruals_flag
     */
    private String nonAccrualsFlag;

    /**
     * 五级分类(0=正常 1=关注 2=次级 3=可疑 4=损失)
     * 表字段:loan_classify
     */
    private String loanClassify;

    /**
     * 下一次还款日期
     * 表字段:next_payment_date
     */
    private Date nextPaymentDate;

    /**
     * 结清日期
     * 表字段:payoff_date
     */
    private Date payoffDate;

    /**
     * 强制催收标识 0-否 1-是
     * 表字段:compel_collection_flag
     */
    private String compelCollectionFlag;

    /**
     * 贷款类型
     * 表字段:loan_type
     */
    private String loanType;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 最后更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getLoanId() {
        return loanId;
    }

    public void setLoanId(String loanId) {
        this.loanId = loanId;
    }

    public String getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public String getAccountStatus() {
        return accountStatus;
    }

    public void setAccountStatus(String accountStatus) {
        this.accountStatus = accountStatus;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getCustomerId() {
        return customerId;
    }

    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    public BigDecimal getCurrBalance() {
        return currBalance;
    }

    public void setCurrBalance(BigDecimal currBalance) {
        this.currBalance = currBalance;
    }

    public BigDecimal getPrincipalBalance() {
        return principalBalance;
    }

    public void setPrincipalBalance(BigDecimal principalBalance) {
        this.principalBalance = principalBalance;
    }

    public BigDecimal getInterestBalance() {
        return interestBalance;
    }

    public void setInterestBalance(BigDecimal interestBalance) {
        this.interestBalance = interestBalance;
    }

    public BigDecimal getPenaltyBalance() {
        return penaltyBalance;
    }

    public void setPenaltyBalance(BigDecimal penaltyBalance) {
        this.penaltyBalance = penaltyBalance;
    }

    public BigDecimal getCompoundBalance() {
        return compoundBalance;
    }

    public void setCompoundBalance(BigDecimal compoundBalance) {
        this.compoundBalance = compoundBalance;
    }

    public BigDecimal getFeeBalance() {
        return feeBalance;
    }

    public void setFeeBalance(BigDecimal feeBalance) {
        this.feeBalance = feeBalance;
    }

    public BigDecimal getRemainPrincipal() {
        return remainPrincipal;
    }

    public void setRemainPrincipal(BigDecimal remainPrincipal) {
        this.remainPrincipal = remainPrincipal;
    }

    public BigDecimal getAccruedInterest() {
        return accruedInterest;
    }

    public void setAccruedInterest(BigDecimal accruedInterest) {
        this.accruedInterest = accruedInterest;
    }

    public BigDecimal getAccruedPenalty() {
        return accruedPenalty;
    }

    public void setAccruedPenalty(BigDecimal accruedPenalty) {
        this.accruedPenalty = accruedPenalty;
    }

    public BigDecimal getAccruedCompound() {
        return accruedCompound;
    }

    public void setAccruedCompound(BigDecimal accruedCompound) {
        this.accruedCompound = accruedCompound;
    }

    public Integer getCastTenor() {
        return castTenor;
    }

    public void setCastTenor(Integer castTenor) {
        this.castTenor = castTenor;
    }

    public Integer getPayedTenor() {
        return payedTenor;
    }

    public void setPayedTenor(Integer payedTenor) {
        this.payedTenor = payedTenor;
    }

    public String getChargeoffFlag() {
        return chargeoffFlag;
    }

    public void setChargeoffFlag(String chargeoffFlag) {
        this.chargeoffFlag = chargeoffFlag;
    }

    public BigDecimal getChargeoffAmount() {
        return chargeoffAmount;
    }

    public void setChargeoffAmount(BigDecimal chargeoffAmount) {
        this.chargeoffAmount = chargeoffAmount;
    }

    public Date getChargeoffDate() {
        return chargeoffDate;
    }

    public void setChargeoffDate(Date chargeoffDate) {
        this.chargeoffDate = chargeoffDate;
    }

    public String getChargeoffReasonCode() {
        return chargeoffReasonCode;
    }

    public void setChargeoffReasonCode(String chargeoffReasonCode) {
        this.chargeoffReasonCode = chargeoffReasonCode;
    }

    public String getWaiveInterestFlag() {
        return waiveInterestFlag;
    }

    public void setWaiveInterestFlag(String waiveInterestFlag) {
        this.waiveInterestFlag = waiveInterestFlag;
    }

    public String getWaiveFeeFlag() {
        return waiveFeeFlag;
    }

    public void setWaiveFeeFlag(String waiveFeeFlag) {
        this.waiveFeeFlag = waiveFeeFlag;
    }

    public String getCompensatoryFlag() {
        return compensatoryFlag;
    }

    public void setCompensatoryFlag(String compensatoryFlag) {
        this.compensatoryFlag = compensatoryFlag;
    }

    public String getBalTransferFlag() {
        return balTransferFlag;
    }

    public void setBalTransferFlag(String balTransferFlag) {
        this.balTransferFlag = balTransferFlag;
    }

    public Integer getTotalCompensatoryTenor() {
        return totalCompensatoryTenor;
    }

    public void setTotalCompensatoryTenor(Integer totalCompensatoryTenor) {
        this.totalCompensatoryTenor = totalCompensatoryTenor;
    }

    public Integer getContinueOverDueTenor() {
        return continueOverDueTenor;
    }

    public void setContinueOverDueTenor(Integer continueOverDueTenor) {
        this.continueOverDueTenor = continueOverDueTenor;
    }

    public Integer getTotalOverDueTenor() {
        return totalOverDueTenor;
    }

    public void setTotalOverDueTenor(Integer totalOverDueTenor) {
        this.totalOverDueTenor = totalOverDueTenor;
    }

    public String getAccountingPhase() {
        return accountingPhase;
    }

    public void setAccountingPhase(String accountingPhase) {
        this.accountingPhase = accountingPhase;
    }

    public Integer getDelqDays() {
        return delqDays;
    }

    public void setDelqDays(Integer delqDays) {
        this.delqDays = delqDays;
    }

    public String getNonAccrualsFlag() {
        return nonAccrualsFlag;
    }

    public void setNonAccrualsFlag(String nonAccrualsFlag) {
        this.nonAccrualsFlag = nonAccrualsFlag;
    }

    public String getLoanClassify() {
        return loanClassify;
    }

    public void setLoanClassify(String loanClassify) {
        this.loanClassify = loanClassify;
    }

    public Date getNextPaymentDate() {
        return nextPaymentDate;
    }

    public void setNextPaymentDate(Date nextPaymentDate) {
        this.nextPaymentDate = nextPaymentDate;
    }

    public Date getPayoffDate() {
        return payoffDate;
    }

    public void setPayoffDate(Date payoffDate) {
        this.payoffDate = payoffDate;
    }

    public String getCompelCollectionFlag() {
        return compelCollectionFlag;
    }

    public void setCompelCollectionFlag(String compelCollectionFlag) {
        this.compelCollectionFlag = compelCollectionFlag;
    }

    public String getLoanType() {
        return loanType;
    }

    public void setLoanType(String loanType) {
        this.loanType = loanType;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }
}
